
import java.util.*;
import java.io.*;

public class FileViewer {
	
	public static List<String> fileList = new ArrayList<String>();
	
	/**
	*
	* @param path 文件路径
	* @param suffix 后缀名
	* @param isdepth 是否遍历子目录
	* @return
	*/
	public static List getListFiles(String path, String suffix, boolean isdepth) {
	   File file = new File(path);
	   fileList.removeAll(fileList);
	   return listFile(file, suffix, isdepth);
	}
	
	/**
	*
	* @param f File Object 
	* @param suffix The suffix of files you care
	* @param isdepth if need to search file in sub-directory 
	* @return
	*/
	public static List listFile(File f, String suffix, boolean isdepth) {
		 if(f.isDirectory() && isdepth == true){ //文件对象f指向的是一个目录，同时需要遍历子目录时，对该目录下所有文件递归调用该函数
		    File[] t = f.listFiles();
		    for (int i = 0; i < t.length; i++){
		    	listFile(t[i], suffix, isdepth);
		    }
		 }else{ // 文件对象f指向的是一个文件
		    String filePath = f.getAbsolutePath();
		    if(suffix != null){ // 需要匹配后缀
		    	int begIndex = filePath.lastIndexOf(".");//最后一个.(即后缀名前面的.)的索引
		    	String tempsuffix = "";
		    	if(begIndex != -1){//防止是文件但却没有后缀名结束的文件
		    		tempsuffix = filePath.substring(begIndex + 1, filePath.length());
		    	}
		    
		    	if(tempsuffix.equalsIgnoreCase(suffix)){
		    		fileList.add(filePath);
		    	}
		    }
		    else{ //后缀名为null则为所有文件
		    	fileList.add(filePath);
		    }
		 }
		 
		return fileList;
	}
	

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List arrayList = FileViewer.getListFiles("F:\\study\\My Dropbox\\study\\Study\\WebRoot\\ext\\resources\\images","gif",true);
		  
		   if(arrayList.isEmpty()){
			   System.out.println("No files");
		   }
		   else {
			   String message = "";
			   message += "符号要求的文件数：" + arrayList.size() + "\r\n";
			   System.out.println(message);
		   
			   for (Iterator i = arrayList.iterator(); i.hasNext();) {
				   String temp = (String) i.next();
				   System.out.println(temp);
				   //message += temp + "\r\n";
			   }
			   //appendMethod("d:/ajax/menu.txt",message);
		   }
	}

}
